package org.ee.core.api;

import java.io.Serializable;
import java.util.*;

public class ApiRequest<T> implements Serializable, AutoCloseable {

    private T data;

    public ApiRequest() {

    }

    public ApiRequest(T data) {
        this.data = data;
    }

    public T getData() {
        return data;
    }

    public void setData(T data) {
        this.data = data;
    }

    @Override
    public void close() {
        switch (data) {
            case null -> {
                return;
            }
            case Map<?, ?> map -> map.clear();
            case List<?> list -> list.clear();
            case Set<?> set -> set.clear();
            default -> {
            }
        }
        // 其他类型（自定义对象），不做处理
    }
}
